video: Reveal controls on tap
authorMohammed Sadiq <sadiq@sadiqpk.org>
Tue, 8 Jun 2021 10:58:44 +0000 (16:28 +0530)
committerMohammed Sadiq <sadiq@sadiqpk.org>
Tue, 8 Jun 2021 12:36:51 +0000 (18:06 +0530)
So that the controls shall be shown on touch

gtk/gtkvideo.c
gtk/ui/gtkvideo.ui

index 2343a3aba9f4894bbd0973d14296bf8e0b64798b..fd889f577b6d90e937000f3a4fde19e5e44aff72 100644 (file)
@@ -101,10 +101,7 @@ gtk_video_hide_controls (gpointer data)
 }
 
 static void
-gtk_video_motion (GtkEventControllerMotion *motion,
-                  double                    x,
-                  double                    y,
-                  GtkVideo                 *self)
+gtk_video_reveal_controls (GtkVideo *self)
 {
   gtk_revealer_set_reveal_child (GTK_REVEALER (self->controls_revealer), TRUE);
   if (self->controls_hide_source)
@@ -114,6 +111,21 @@ gtk_video_motion (GtkEventControllerMotion *motion,
                                               self);
 }
 
+static void
+gtk_video_motion (GtkEventControllerMotion *motion,
+                  double                    x,
+                  double                    y,
+                  GtkVideo                 *self)
+{
+  gtk_video_reveal_controls (self);
+}
+
+static void
+gtk_video_pressed (GtkVideo *self)
+{
+  gtk_video_reveal_controls (self);
+}
+
 static void
 gtk_video_realize (GtkWidget *widget)
 {
@@ -353,6 +365,7 @@ gtk_video_class_init (GtkVideoClass *klass)
   gtk_widget_class_bind_template_child (widget_class, GtkVideo, controls);
   gtk_widget_class_bind_template_child (widget_class, GtkVideo, controls_revealer);
   gtk_widget_class_bind_template_callback (widget_class, gtk_video_motion);
+  gtk_widget_class_bind_template_callback (widget_class, gtk_video_pressed);
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
   gtk_widget_class_set_css_name (widget_class, I_("video"));
index 25351250d8ac8d5e93ef806a1d181f3337849acc..3760d4b7c8d82deb2d8157c4d0adee5780d4c41b 100644 (file)
         <signal name="motion" handler="gtk_video_motion" swapped="no"/>
       </object>
     </child>
+    <child>
+      <object class="GtkGestureClick">
+        <property name="touch-only">1</property>
+        <signal name="pressed" handler="gtk_video_pressed" swapped="yes"/>
+      </object>
+    </child>
   </template>
 </interface>